Storage devices with neural network accelerators for automotive predictive maintenance

ABSTRACT

Systems, methods and apparatus of accelerating neural network computations of predictive maintenance of vehicles. For example, a data storage device of a vehicle includes: a host interface configured to receive a sensor data stream from at least one sensor configured on the vehicle; at least one storage media component having a non-volatile memory to store at least a portion of the sensor data stream; a controller; and a neural network accelerator coupled to the controller. The neural network accelerator is configured to perform at least a portion of computations based on an artificial neural network and the sensor data stream to predict a maintenance service of the vehicle.

FIELD OF THE TECHNOLOGY

At least some embodiments disclosed herein relate to maintenance services of vehicles in general and more particularly, but not limited to, storage devices with neural network accelerators for predictive maintenance of motor vehicles.

BACKGROUND

Automotive maintenance is conventionally scheduled based on a predetermined milestone of operations. For example, a routine maintenance service can be scheduled once for every three or six months, or after a predetermined distance traveled (e.g., 3000 miles, 6000 miles, or 15000 miles).

When a component of a motor vehicle breaks down or malfunctions during the operation of the vehicle, such an incident can be a safety hazard. After such an incident occurs, a trip for the service of the vehicle would be scheduled soon at an inconvenient time.

Recent developments in the technological area of autonomous driving allow a computing system to operate, at least under some conditions, control elements of a motor vehicle without the assistance from a human operator of the vehicle.

For example, sensors (e.g., cameras and radars) can be installed on a motor vehicle to detect the conditions of the surroundings of the vehicle traveling on a roadway. A computing system installed on the vehicle analyzes the sensor inputs to identify the conditions and generate control signals or commands for the autonomous adjustments of the direction and/or speed of the vehicle, with or without any input from a human operator of the vehicle.

In some arrangements, when a computing system recognizes a situation where the computing system may not be able to continue operating the vehicle in a safe manner, the computing system alerts the human operator of the vehicle and requests the human operator to take over the control of the vehicle and drive manually, instead of allowing the computing system to drive the vehicle autonomously.

U.S. Pat. No. 9,533,579, entitled “Electronic Control Apparatus for Electrically-Driven Vehicle” and published Jan. 3, 2017, discloses an electronic control apparatus of a vehicle that has a self-diagnosis function.

Autonomous driving and/or advanced driver assistance system (ADAS) typically involves artificial neural network (ANN) for the identification of events and/or objects that are captured in sensor inputs.

In general, an artificial neural network (ANN) uses a network of neurons to process inputs to the network and to generate outputs from the network.

For example, each neuron in the network receives a set of inputs. Some of the inputs to a neuron may be the outputs of certain neurons in the network; and some of the inputs to a neuron may be the inputs provided to the neural network. The input/output relations among the neurons in the network represent the neuron connectivity in the network.

For example, each neuron can have a bias, an activation function, and a set of synaptic weights for its inputs respectively. The activation function may be in the form of a step function, a linear function, a log-sigmoid function, etc. Different neurons in the network may have different activation functions.

For example, each neuron can generate a weighted sum of its inputs and its bias and then produce an output that is the function of the weighted sum, computed using the activation function of the neuron.

The relations between the input(s) and the output(s) of an ANN in general are defined by an ANN model that includes the data representing the connectivity of the neurons in the network, as well as the bias, activation function, and synaptic weights of each neuron. Using a given ANN model a computing device computes the output(s) of the network from a given set of inputs to the network.

For example, the inputs to an ANN network may be generated based on camera inputs; and the outputs from the ANN network may be the identification of an item, such as an event or an object.

A spiking neural network (SNN) is a type of ANN that closely mimics natural neural networks. An SNN neuron produces a spike as output when the activation level of the neuron is sufficiently high. The activation level of an SNN neuron mimics the membrane potential of a natural neuron. The outputs/spikes of the SNN neurons can change the activation levels of other neurons that receive the outputs. The current activation level of an SNN neuron as a function of time is typically modeled using a differential equation and considered the state of the SNN neuron. Incoming spikes from other neurons can push the activation level of the neuron higher to reach a threshold for spiking. Once the neuron spikes, its activation level is reset. Before the spiking, the activation level of the SNN neuron can decay over time, as controlled by the differential equation. The element of time in the behavior of SNN neurons makes an SNN suitable for processing spatiotemporal data. The connectivity of SNN is often sparse, which is advantageous in reducing computational workload.

In general, an ANN may be trained using a supervised method where the parameters in the ANN are adjusted to minimize or reduce the error between known outputs resulted from respective inputs and computed outputs generated from applying the inputs to the ANN. Examples of supervised learning/training methods include reinforcement learning, and learning with error correction.

Alternatively, or in combination, an ANN may be trained using an unsupervised method where the exact outputs resulted from a given set of inputs is not known before the completion of the training. The ANN can be trained to classify an item into a plurality of categories, or data points into clusters.

Multiple training algorithms can be employed for a sophisticated machine learning/training paradigm.

BRIEF DESCRIPTION OF THE DRAWINGS

The embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings in which like references indicate similar elements.

FIG. 1 shows a system in which a vehicle is configured with a data storage device to collect and process sensor data according to some embodiments.

FIG. 2 shows an autonomous vehicle having a data storage device according to one embodiment.

FIGS. 3-5 illustrate training of artificial neural networks for maintenance service prediction according to some embodiments.

FIG. 6 shows a method of predictive maintenance according to one embodiment.

FIG. 7 shows a data storage device to accelerate neural network computations according to one embodiment.

FIG. 8 shows a storage media component to accelerate neural network computations according to one embodiment.

FIG. 9 shows a method to accelerate neural network computations in motor vehicles according to one embodiment.

DETAILED DESCRIPTION

At least some embodiments disclosed herein provide systems, methods and apparatus to process sensor data generated in a motor vehicle, or another vehicle with or without an advanced driver assistance system (ADAS), to facilitate predictive maintenance.

Before a component of a motor vehicle breaks down or malfunctions during the operation of a vehicle, there can be indication of whether the component needs replacement or maintenance. Such indications may not be noticeable to a typical driver or passengers. However, sensor data can be collected and analyzed to predict the probability of component failures. The prediction can be used to schedule maintenance services, which can reduce or eliminate the chances of incidents where a component of a vehicle breaks down or malfunctions during the operation of the vehicle on a roadway. Further, the prediction allows the service trip to be scheduled at a convenient time.

For example, sensors can be installed in an automotive system to collect data during its routine operations; and the sensor data can be used to predict whether and how soon a component needs replacement or maintenance. The sensor data can be provided as input to an artificial neural network (ANN) (e.g., spiking neural network (SNN)) of an artificial intelligent (AI) system to train itself (e.g., using an unsupervised machine learn technique) in a time period in which the vehicle is expected to operate normally. The training customizes the neural network for the specific operating environment(s) of the driver, passenger, or user of the vehicle and the personalized operating habits of the vehicle occupant(s). Subsequently, when the operating data deviates the normal mode, the artificial neural network can detect abnormal conditions. The AI system can be used to suggest a maintenance service and/or identify the component that likely needs replacement or maintenance.

FIG. 1 shows a system in which a vehicle is configured with a data storage device to collect and process sensor data according to some embodiments.

The system of FIG. 1 includes a vehicle (111) having a data storage device (101). Optionally, the vehicle (111) has an advanced driver assistance system (ADAS) (105) and one or more sensors (103) that provide sensor data input to the ADAS (105) and/or the data storage device (101). The data storage device (101) is configured to use an artificial neural network (ANN) (125) to predict/identify a need for a maintenance service based on the data collected by the sensors (103). The ADAS (105) can be omitted without impacting the predictive maintenance features. In some implementations, at least a portion of the data generate by the sensors (103) is used in both the ADAS (105) for driver assistance and in the ANN (125) for maintenance prediction. Optionally, the output of the ANN (124) can be used in both the data storage device (101) and in the ADAS (105).

The sensor(s) (103) can include digital cameras, lidars, radars, ultrasound sonars, brake sensors, speed sensors, acceleration sensors, airbag sensors, a GPS (global positioning system) receiver, audio sensors/microphones, vibration sensors, force/stress sensors, deformation sensors, motion sensors, temperature sensors, etc. Some of the sensors (103) can be configured primarily to monitor the environment of the vehicle (111); and other sensors (103) can be configured primarily to monitor the operating condition of one or more component of the vehicle (111), such as an internal combustion engine, an exhaust system, an electric motor, a brake, a tire, a battery, etc.

The outputs of the sensor(s) (103) as a function of time are provided as a sensor data stream to the ADAS (105) and/or the ANN (125) to provide driver assistance (e.g., autonomous driving) and maintenance prediction.

For example, the vehicle (111) can have a wireless communication device to communicate with a remote server (119) via wireless signals (113) and a communication network (117). The remote server (119) is typically configured at a location away from a road (102) on which the vehicle (111) is in service. For example, the vehicle (111) may provide some sensor data (121) to the server (119) and receive update of the ANN (125) from the server (119).

One example of the communication network (117) is a cell phone network having one or more base stations (e.g., 115) to receive the wireless signals (e.g., 113). Another example of the communication network (117) is internet, where the wireless local area network signals (e.g., 113) transmitted by the vehicle (113) is received in an access point (e.g., 115) for further communication to the server (119). In some implementations, the vehicle (111) uses a communication link (107) to a satellite (109) or a communication balloon to communicate with the server (119).

The server (119) can also communicate with one or more maintenance service facilities (e.g., 127) to receive maintenance service data (123) of vehicles (e.g., 111). The maintenance service data (123) can include inspection records and/or service records of components of the vehicles (e.g., 111). For example, the inspection records and/or service records can indicate the degree of wear and tear of components inspected during their services at the maintenance service facilities (e.g., 127), the identification of failed or malfunctioning components, etc. The sensor data (121) of the vehicles (e.g., 111) in a time period prior to the services and the maintenance service data (123) can be used to train an ANN (125) to predict the probability of a component requiring a maintenance service. The updated ANN (125) can be used to predict and suggest a maintenance service for a vehicle (111) based on sensor data (121) received in a recent period of time. Alternatively, the update ANN (125) can be transmitted to the vehicle (111); and the vehicle (111) can use the data generated from the sensors (103) during routine operations of the vehicle (111) to predict and suggest a maintenance service.

The data storage device (101) of the vehicle (111) can be configured to record sensor data for a period of time that can be used in the ANN for predictive maintenance. Maintenance prediction is typically for a relative long period of time (e.g., a few days, weeks and/or months). In contrast, sensor data recorded for the review of an accident, collision, or near collision involving an autonomous vehicle is typically for a short period of time (e.g., 30 seconds to a few minutes). Thus, a typical black box data recorder configured to record sensor data for the review/analysis of an accident or collision is insufficient for predictive maintenance.

Optionally, the data storage device (101) stores the sensor data of a period of time leading to a trip to a maintenance service facility (e.g., 127). The maintenance service facility (e.g., 127) can download the sensor data (121) from the data storage device (101) and provide the sensor data (121) and the corresponding maintenance service data (123) to the server (119) to facilitate the training of the ANN (125).

Optionally, or in combination, the data storage device (101) is configured with a machine learning module to customize and/or train the ANN (125) installed in the vehicle (111) for predictive maintenance.

For example, the machine learning module of the data storage device (101) can be used to calibrate the ANN (125) to account for the typical/daily environment in which the vehicle (111) is being operated and/or driving preferences/habits of the driver(s) of the vehicle (111).

For example, during a period of time when the vehicle is expected to be operated under typical/daily environment with healthy components, the sensor data generated by the sensors (103) can be used to train the ANN (125) to recognize the patterns of sensor data that represents trouble free operations. Such patterns can vary for different vehicles (e.g., 111) based on their routine operating environments and the driving habits/characteristics of their drivers. The training allows the ANN (125) to detect deviations from the recognized normal patterns and report anomaly for maintenance predictions.

For example, the ANN (125) can include an SNN configured to classify time-based variations of sensor data and/or detect deviation from known patterns of sensor data of the vehicle (111) operated in the normal/healthy condition but in a personalized environment (e.g., a daily route of a driver/passenger) and/or operated under a personalized driving habit/pattern.

FIG. 2 shows an autonomous vehicle (111) having a data storage device (101) according to one embodiment. For example, the vehicle (111) in the system of FIG. 1 can be implemented using the autonomous vehicle (111) of FIG. 2 .

The vehicle (111) of FIG. 2 is configured to have an advanced driver assistance system (ADAS) (105). The ADAS (105) of the vehicle (111) can have an Artificial Neural Network (ANN) (125) for object detection, recognition, identification, and/or classification. The ANN (125) and/or another neural network (e.g., configured in the data storage device (101)) can be used to predict the probability of a component of the vehicle (111) requiring a maintenance service (e.g., repair, replacement, or adjustment).

Preferably, the data storage device (101) is configured to process sensor data at least partially for predictive maintenance with reduced computation burden on the processors (133) that are tasked to operate the ADAS (105) and/or other components, such as an infotainment system (149).

The vehicle (111) typically includes an infotainment system (149), a communication device (139), one or more sensors (103), and a computer system (131) that is connected to some controls of the vehicle (111), such as a steering control (141) for the direction of the vehicle (111), a braking control (143) for stopping of the vehicle (111), an acceleration control (145) for the speed of the vehicle (111), etc. In some embodiments, the vehicle (111) in the system of FIG. 1 has a similar configuration and/or similar components.

Some of the sensors (103) are required for the operations of the ADAS (105); and some of the sensors (103) are used to collect data related to the health of the components of the vehicle (111), which may not be used in the ADAS (105). Optionally, the sensor data generated by the sensors (103) can also be used to predict the likelihood of imminent failure of a component. Such a prediction can be used in the ADAS (105) to take emergency actions to render the vehicle in a safe state (e.g., by reducing speed and/or pulling off to park).

The computer system (131) of the vehicle (111) includes one or more processors (133), a data storage device (101), and memory (135) storing firmware (or software) (147), including the computer instructions and data models for ADAS (105).

The one or more sensors (103) of the vehicle can include a visible light camera, an infrared camera, a lidar, radar, or sonar system, a peripheral sensor, a global positioning system (GPS) receiver, a satellite positioning system receiver, a brake sensor, and/or an airbag sensor. Further, the sensors (103) can include audio sensors (e.g., microphone) configured to monitor noises from various components and locations in the vehicle (111), a vibration sensor, a pressure sensor, a force sensor, a stress sensor, and/or a deformation sensor configured to measure loads on a component of the vehicle (111), accelerometers and/or gyroscope sensors measuring the motions of some components of the vehicle (111), etc. Such sensors can be used to monitor the operating status and/or health of the components for predictive maintenance.

The sensor(s) (103) can provide a stream of real time sensor data to the computer system (131). The sensor data generated by a sensor (103) of the vehicle (111) can include an image that captures an object using a camera that images using lights visible to human eyes, or a camera that images using infrared lights, or a sonar, radar, or LIDAR system. Image data obtained from at least one sensor of the vehicle is part of the collected sensor data for recording in the data storage device (101) and/or as input to the ANN (125). For example, a camera can be used to obtain roadway information for the travel of the vehicle (111), which can be processed by the ANN (125) to generate control signals for the vehicle (111). For example, a camera can be used to monitor the operation state/health of a component of the vehicle (111), which can be processed by the ANN (125) to predict or schedule a maintenance service.

The sensor data generated by a sensor (103) of the vehicle (111) can include an audio stream that captures the characteristics of sounds at a location on the vehicle (111), such as a location near an engine, a motor, a transmission system, a wheel, a door, a window, etc. The audio data obtained from at least one sensor (103) of the vehicle (111) can be part of the collected sensor data for recording in the data storage device (101) and/or as input to the ANN (125). For example, the audio stream can be used to monitor the operation state/health of a component of the vehicle (111) (e.g., an internal combustion engine, an exhaust system, an electric motor, a brake), which can be processed by the ANN (125) to predict or schedule a maintenance service.

The infotainment system (149) can be used to present the predicted or scheduled maintenance service. Optionally, the communication device (139) can establish a connection to a mobile device of the driver of the vehicle (111) to inform the driver of the recommended maintenance service and/or the recommended data of the service, to calendar the appointment, etc.

When the vehicle (111) is configured with an ADAS (105), the outputs of the ADAS (105) can be used to control (e.g., (141), (143), (145)) the acceleration of the vehicle (111), the speed of the vehicle (111), and/or the direction of the vehicle (111), during autonomous driving.

FIGS. 3-5 illustrate training of artificial neural networks for maintenance service prediction according to some embodiments.

In FIG. 3 , a module (171) of supervised machine learning is used to train an artificial neural network (125) to minimize the differences between the service prediction (129) generated from the sensor data (121) and the maintenance service data (123).

For example, the maintenance service data (123) can identify the measured wear and tear of a component as a function of time to predict a time to a recommended service. The sensor data (121) can be used in the ANN (125) to generate a predicted time to the recommended service. The supervised machine learning module (171) can adjust the artificial neural network (125) to reduce/minimize the difference between the time predicted based on the sensor data (121) and the time computed from the measurement of wear and tear.

For example, the maintenance service data (123) can identify a component that is replaced or repaired in the maintenance service facility (127). The sensor data (121) recorded for a time period prior to the replacement or repair of the component can be used to calculate the times to the replacement or repair. Further, the segments of the stream of sensor data in the time period before the replacement or repair can be used in the ANN (125) to generate a prediction to the time of the replacement or repair. The supervised learning (171) can be used to adjust the ANN (125) to reduce the predicted time to the replacement or repair and the actual time to the replacement or repair.

The supervised learning (171) of FIG. 2 can be applied in the server (119) based on the sensor data of a population of vehicles and their maintenance service data (123) to generate a generic ANN for the population of the vehicles.

The supervised learning (171) of FIG. 2 can be applied in the vehicle (111) based on the sensor data of the vehicle and its maintenance service data (123) to generate a customized/personalized ANN for the population of the vehicles. For example, a generic ANN can be initially used in the vehicle (111); and the sensor data of the vehicle (111) and its maintenance service data (123) can be used to further train the ANN (125) of the vehicle for customization/personalization of the ANN (125) in the vehicle (111).

In FIG. 4 , a module (175) of unsupervised machine learning is used to train or refine an artificial neural network (125) to facilitate anomaly detection (173). The unsupervised machine learning module (175) is configured to adjust the ANN (e.g., SNN) the classification, clustering, or recognized pattern in the sensor data (121) such that a degree of deviation from the classification, clustering, or recognized pattern in the sensor data (121) generated in a recent time period can be used to signal the detection (173) of anomaly. Anomaly detection (173) allows the vehicle (111) to be scheduled for inspection in a maintenance service facility (127). Optionally, after the inspection, maintenance service data (123) can be used to apply a supervised learning (171) to generate more precise predictions to a service, as in FIG. 3 .

Typically, a vehicle (111) can be assumed to be operating in a normal/healthy condition in a certain time period. For example, after a new vehicle (111) is initially delivered for service, the vehicle (111) can be assumed to provide trouble-free services for at least a period of time (e.g., a few months). For example, after a time period following the replacement or repair of a component, the component can be assumed to provide trouble-free service for at least a period of time (e.g., a few months or a year). Thus, the sensor data (121) obtained during this period of time can be pre-classified as “normal” to train the ANN (125) using an unsupervised learning (175) as in FIG. 4 , or a supervised learning (171) as in FIG. 5 .

For example, the sensor data (121) collected via during the “normal” service time period of the vehicle (111) or a component can be classified via an unsupervised learning (175) into a number of clusters. Different clusters may correspond to different types of normal conditions (e.g., traveling on different routes, on roads with different surface conditions, on days with different whether conditions, in different time periods of a day, different days in a week, different mood of driving habits of the driver). When a subsequent sensor data (121) is classified outside of the “normal” clusters, an anomaly is detected.

Optionally, a supervised machine learning (171) can be used to train the ANN (125), as illustrated in FIG. 5 . During the “normal” service period of the vehicle (111) or a component, an expected classification (177) can be used to label the sensor data (121). The supervised learning (171) can be used to minimize the classification differences between the predictions (179) made using the ANN (125) according to the sensor data (121) and the expected classification (177). Further, when the sensor data (121) is known to be “abnormal” (e.g., after a diagnosis made in the maintenance service facility (127) or by the user, driver, or passenger of the vehicle (111)), the expected classification (177) can be changed to “abnormal” for further training of the ANN (125) for direct recognition of the anomaly (e.g., instead of relying upon deviation from known “normal” clusters for an inference of anomaly).

Thus, the ANN (125) can be trained to identify abnormal sensor data and estimate the degree of severity in anomaly to schedule a maintenance service.

FIG. 6 shows a method of predictive maintenance according to one embodiment. For example, the method of FIG. 6 can be implemented in the data storage device (101) of FIG. 1 or 2 in the vehicle (111) or in a computer system (131) in the vehicle (111) of FIG. 2 .

At block 201, a sensor (e.g., 103) installed in a vehicle (111) generates a sensor data stream (e.g., 121) during operations of the vehicle (111) on a road (102).

At block 203, the sensor data stream (e.g., 121) is provided into an artificial neural network (ANN) (125). For example, the ANN (125) can include a spiking neural network (SNN).

At block 205, the artificial neural network (ANN) (125) generates, based on the sensor data stream (e.g., 121), a prediction of a maintenance service.

At block 207, a data storage device (101) configured on the vehicle stores at least a portion of the sensor data stream (e.g., 121).

At block 209, the artificial neural network (ANN) is trained using the sensor data stream (e.g., 121) collected within a predetermined time period from the vehicle leaving a factory or a maintenance service facility (127).

For example, the artificial neural network (ANN) can be configured to identify a component of the vehicle (111) that needs repair or replacement in the maintenance service and/or identify a predicted time period to failure or malfunctioning of the component, or a suggested time period to a recommended maintenance service of the component prior the failure or malfunctioning of the component. Thus, the performance of the predicted maintenance service can avoid an incident of failure or malfunctioning of the component while the vehicle (111) operates on the road (102).

For example, the sensor (103) can be a microphone mounted in vicinity of the component, a vibration sensor attached to the component, a pressure sensor installed in the component, a force or stress sensor mounted on or attached to the component, a deformation sensor attached to the component, an accelerometer configured to measure motion parameters of the component.

Optionally, the data storage device (101), the computer system (131) of the vehicle (111), and/or a server (119) remote from the vehicle can have a machine learning module configured to train the artificial neural network (ANN) (125) during a period of time in which the vehicle (111) is assumed to be in a healthy state, such as a predetermined time period from the vehicle (111) leaving a factory or a maintenance service facility (127).

For example, the machine learning module can use an unsupervised machine learning (175) to train the ANN (125) to recognize/classify normal patterns of sensor data (121) and thus to have the capability to detect anomaly based on deviation from the normal patterns, as illustrated in FIG. 4 . Alternatively, supervised machine learning (171) can be used, as illustrated in FIG. 3 or 5 .

For example, unsupervised machine learning (175) can be applied by the data storage device (101) or the computer system (131) of the vehicle (111) during the predetermined period of time in which the vehicle and/or the component is known to be operating without troubles or degradations.

Alternatively, or in combination, some of the sensor data (121) stored in the data storage device (101) of the vehicle (111) can be uploaded to the server (119) for training the ANN (125).

In at least some embodiments disclosed herein, the data storage device (101) is configured to accelerate the computations of the artificial neural network (ANN) (125) of the vehicle (111).

For example, in addition to the typical operations to support data access and storage, the data storage device (101) can be further configured to perform at least part of the computations involving the artificial neural network (ANN) (125), such as the generation of the predictions (e.g., 129 or 173) or classifications (e.g., 179) from the sensor data (121) and/or the adjustment of the ANN (125) through unsupervised machine learning (175) (e.g., as illustrated in FIG. 4 ) and/or supervised machine learning (171) (e.g., as illustrated in FIG. 3 or 5 ).

For example, the computations configured in the data storage device (101) can be used to reduce the amount of data to be transmitted to the processor(s) (133) to use or apply the ANN (125) and/or reduce the computation tasks of the processor(s) (133) in evaluating the outputs of the ANN (125) and/or in training the ANN (125). Such an arrangement can result in faster output from the data storage device (101) and/or lower energy usage, since the data would not have to be moved in and out of the memory to a dedicated, standalone neural network accelerator. The computation capability of the data storage device (101) in processing data related to the ANN (125) enables the computer system (131) of the motor vehicle (111) to monitor the health of the automotive components (e.g., in a non-real-time manner, or a pseudo-real-time manner), with reduced impact, or no impact, on the processing of mission critical tasks (e.g., autonomous driving by the ADAS (105)). Further, the computation capability of the data storage device (101) can be used to accelerate the processing of the sensor data for ADAS (105) and thus improve the processing of mission critical tasks.

FIG. 7 shows a data storage device (101) to accelerate neural network computations according to one embodiment. For example, the data storage device (101) of FIG. 7 can be used to implement the data storage device (101) of the vehicle (111) illustrated in FIG. 1 or 2 .

In FIG. 7 , the data storage device (101) has a host interface (157) configured to communicate with a processor (e.g., 133). For example, the communication between the processor (e.g., 133) and the host interface (157) can be, at least in part, in accordance with a communication protocol for a peripheral component interconnect express (PCIe) bus, a serial advanced technology attachment (SATA) bus, a universal serial bus (USB) bus, and/or a storage area network (SAN).

For example, the host interface (157) can be used to receive sensor data (121) generated by the sensors (103) of the vehicle (111) to optionally store a portion of the sensor data (121) in the storage media components (161 to 163).

For example, each of the storage media components (161 to 163) can be a memory integrated circuit configured to store data. For example, a media component (161 or 163) can include one or more integrated circuit dies embedded in an integrated circuit package. An integrated circuit die can have many memory units formed thereon to store data.

In general, some memory integrated circuits are volatile and require power to maintain the stored data; and some memory integrated circuits are non-volatile and can retain the stored data even when not powered.

Examples of non-volatile memory include flash memory, memory units formed based on negative-and (NAND) logic gates, negative-or (NOR) logic gates, phase-change memory (PCM), magnetic memory (MRAM), resistive random-access memory, cross point storage and memory devices. A cross point memory device uses transistor-less memory elements, each of which has a memory cell and a selector that are stacked together as a column. Memory element columns are connected via two perpendicular layers of wires, where one layer is above the memory element columns and the other layer below the memory element columns. Each memory element can be individually selected at a cross point of one wire on each of the two layers. Cross point memory devices are fast and non-volatile and can be used as a unified memory pool for processing and storage. Further examples of non-volatile memory include Read-Only Memory (ROM), Programmable Read-Only Memory (PROM), Erasable Programmable Read-Only Memory (EPROM) and Electronically Erasable Programmable Read-Only Memory (EEPROM) memory, etc. Examples of volatile memory include Dynamic Random-Access Memory (DRAM) and Static Random-Access Memory (SRAM).

The data storage device (101) can have a controller (151) that includes volatile local memory (153) and at least one processing device (155).

The local memory of the controller (151) can be an embedded memory configured to store instructions for performing various processes, operations, logic flows, and routines that control operation of the processing device (155), including handling communications between the data storage device (101) and the processor(s) (e.g., 133) of the vehicle (111), and other functions described herein. The local memory (153) of the controller (151) can include read-only memory (ROM) for storing micro-code and/or memory registers storing, e.g., memory pointers, fetched data, etc., and/or volatile memory, such as Dynamic Random-Access Memory (DRAM) and Static Random-Access Memory (SRAM).

In FIG. 7 , the data storage device (101) includes a neural network accelerator (159) coupled to the controller (151) and/or the storage media components (161 to 163).

For example, the neural network accelerator (159) can be configured to perform matrix arithmetic computations. The computations involving ANN (125) have matrix multiplication and accumulation operations, which can be computational intensive for a generic processor (e.g., 133). Using the neural network accelerator (159) to perform the matrix arithmetic computations can reduce the data to be transmitted to the processor(s) (133) of the vehicle (111) and reduce the computation workload for the processor(s) (133).

For example, when the ANN (125) includes a spiking neural network (SNN), the simulation of the differential equation(s) for controlling the activation level of SNN neurons can be computationally intensive for a generic processor (e.g., 133). The neural network accelerator (159) can use special hardware to simulate the differential equation(s) and thus improve the computational efficiency of the computer system (131) as a whole.

In some implementations, the neural network accelerator (159) is an integrated circuit device separate from the controller (151) and/or the storage media components (161 to 163). Alternatively, or in combination, a neural network accelerator (159) is integrated with the controller (151) in an integrated circuit package. Further, a neural network accelerator (159) can be integrated in at least one of the storage media components (161 to 163), as illustrated in FIG. 8 .

FIG. 8 shows a storage media component (160) to accelerate neural network computations according to one embodiment. For example, each or some of the storage media components (161 to 163) in FIG. 7 can be implemented using a storage media component (160) of FIG. 8 .

In FIG. 8 , the storage media component (160) can be housed within an integrated circuit package. An input/output (I/O) interface (171) of the storage media component (160) is configured to process input/output signals in the pins of the integrated circuit package. For example, the input/output signals can include address signals to specify locations in the media units (175) and data signals representing data to be written in the media units (175) at the locations specified via the address signals, or data retrieved from the locations in the media units (175).

In FIG. 8 , a neural network accelerator (159) is coupled with the control logic (173) and/or the media units (175) to perform computations that are used in the evaluation of the output of an ANN (125) and/or in the training of the ANN (125).

For example, the input/output interface (171) can receive addresses that identify matrices that are stored in the media units and that are to be operated upon via the neural network accelerator (159). The storage media component (160) can provide the computation results of the neural network accelerator (159) as the output data responsive to the addresses, store the output data in a buffer for further operations, store the output data into a location in the media units (175) specified via the address signals. Thus, the computations performed by the neural network accelerator (159) can be within the storage media component (160), which is close to the media units (175) in which the matrix data is stored. For example, each of the media units (175) can be an integrated circuit die on which memory units of non-volatile memory are formed.

For example, the state data of SNN neurons can be stored in the media units (175) according to a predetermined pattern. The neural network accelerator (159) can automatically update the states of the SNN neurons according to the differential equation(s) for controlling the activation level of SNN neurons over time. Optionally, the neural network accelerator (159) is configured to process spiking of neurons in the neural network. Alternatively, the neural network accelerator (159) of the data storage device (101) and/or the processor(s) (133) can be configured to process the spiking of neurons and/or accumulation of inputs to the SNN.

FIG. 9 shows a method to accelerate neural network computations in motor vehicles according to one embodiment. For example, the method of FIG. 9 can be implemented in a vehicle (111) of FIG. 1 or 2 using a data storage device (101) of FIG. 7 and/or a storage media component (160) of FIG. 8 . For example, the method of FIG. 9 can be used in combination with the method of FIG. 6 .

At block 221, a data storage device (101) of a vehicle (111) receives a sensor data stream from at least one sensor (e.g., 103) configured on the vehicle (111).

At block 223, the data storage device (101) stores at least a portion of the sensor data stream.

At block 225, a neural network accelerator (159) configured within the data storage device (101) performs at least a portion of computations based on an artificial neural network (125) and the sensor data stream.

At block 227, a maintenance service of the vehicle (111) is predicted based at least in part on the computations performed by the neural network accelerator (159) configured within the data storage device (101).

Optionally, at block 229, the artificial neural network (ANN) is trained in the vehicle (111), using at least in part the neural network accelerator and using the sensor data stream collected within a predetermined time period, such as a period following the delivery of the new vehicle (111) from a factory or following the replacement of a component in a maintenance service facility (127).

For example, the neural network accelerator (159) can be configured on an integrated circuit device that is separate from a controller (151) of the data storage device and/or separate from the storage media components (161 to 163).

For example, the neural network accelerator (159) can be configured on an integrated circuit device that includes a controller (151) of the data storage device (101), or on an integrated circuit device that includes storage media component (160, 161 or 163) of the data storage device (101).

For example, the neural network accelerator (159) can be configured to perform computations, such as matrix arithmetic computations for ANN and/or differential equation simulations for SNN, using data stored in the data storage device (101).

Examples of the matrix arithmetic computations include matrix multiplication and accumulation operations. After a computation to generate a result of the matrix arithmetic computations using a data stored in the data storage device (101), the neural network accelerator (159) can provide the result as output of the data storage device (101) in retrieving data (e.g., in response to a read command). Alternatively, or in combination, the result of the matrix arithmetic computation can be buffered in the data storage device (101) as operand for a next matrix computation performed in combination with a matrix of data retrieved from the non-volatile memory via a read command received in the host interface (157).

When the artificial neural network (ANN) (125) includes a spiking neural network (SNN), the neural network accelerator can be configured to simulate a differential equation controlling activation levels of neurons in the spiking neural network (SNN). Optionally, the storage media component is configured to store states of the neurons in the spiking neural network according to a predetermined pattern; and the neural network accelerator is configured to automatically update the states of the neurons over time according to the differential equation. For example, the neural network accelerator (159) can be configured to train the spiking neural network (SNN) via unsupervised machine learning to detect anomaly.

The server (119), the computer system (131), and/or, the data storage device (101) can each be implemented as one or more data processing systems.

The present disclosure includes methods and apparatuses which perform the methods described above, including data processing systems which perform these methods, and computer readable media containing instructions which when executed on data processing systems cause the systems to perform these methods.

A typical data processing system may include an inter-connect (e.g., bus and system core logic), which interconnects a microprocessor(s) and memory. The microprocessor is typically coupled to cache memory.

The inter-connect interconnects the microprocessor(s) and the memory together and also interconnects them to input/output (I/O) device(s) via I/O controller(s). I/O devices may include a display device and/or peripheral devices, such as mice, keyboards, modems, network interfaces, printers, scanners, video cameras and other devices known in the art. In one embodiment, when the data processing system is a server system, some of the I/O devices, such as printers, scanners, mice, and/or keyboards, are optional.

The inter-connect can include one or more buses connected to one another through various bridges, controllers and/or adapters. In one embodiment the I/O controllers include a USB (Universal Serial Bus) adapter for controlling USB peripherals, and/or an IEEE-1394 bus adapter for controlling IEEE-1394 peripherals.

The memory may include one or more of: ROM (Read Only Memory), volatile RAM (Random Access Memory), and non-volatile memory, such as hard drive, flash memory, etc.

Volatile RAM is typically implemented as dynamic RAM (DRAM) which requires power continually in order to refresh or maintain the data in the memory. Non-volatile memory is typically a magnetic hard drive, a magnetic optical drive, an optical drive (e.g., a DVD RAM), or other type of memory system which maintains data even after power is removed from the system. The non-volatile memory may also be a random access memory.

The non-volatile memory can be a local device coupled directly to the rest of the components in the data processing system. A non-volatile memory that is remote from the system, such as a network storage device coupled to the data processing system through a network interface such as a modem or Ethernet interface, can also be used.

In the present disclosure, some functions and operations are described as being performed by or caused by software code to simplify description. However, such expressions are also used to specify that the functions result from execution of the code/instructions by a processor, such as a microprocessor.

Alternatively, or in combination, the functions and operations as described here can be implemented using special purpose circuitry, with or without software instructions, such as using Application-Specific Integrated Circuit (ASIC) or Field-Programmable Gate Array (FPGA). Embodiments can be implemented using hardwired circuitry without software instructions, or in combination with software instructions. Thus, the techniques are limited neither to any specific combination of hardware circuitry and software, nor to any particular source for the instructions executed by the data processing system.

While one embodiment can be implemented in fully functioning computers and computer systems, various embodiments are capable of being distributed as a computing product in a variety of forms and are capable of being applied regardless of the particular type of machine or computer-readable media used to actually effect the distribution.

At least some aspects disclosed can be embodied, at least in part, in software. That is, the techniques may be carried out in a computer system or other data processing system in response to its processor, such as a microprocessor, executing sequences of instructions contained in a memory, such as ROM, volatile RAM, non-volatile memory, cache or a remote storage device.

Routines executed to implement the embodiments may be implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions referred to as “computer programs.” The computer programs typically include one or more instructions set at various times in various memory and storage devices in a computer, and that, when read and executed by one or more processors in a computer, cause the computer to perform operations necessary to execute elements involving the various aspects.

A machine readable medium can be used to store software and data which when executed by a data processing system causes the system to perform various methods. The executable software and data may be stored in various places including for example ROM, volatile RAM, non-volatile memory and/or cache. Portions of this software and/or data may be stored in any one of these storage devices. Further, the data and instructions can be obtained from centralized servers or peer to peer networks. Different portions of the data and instructions can be obtained from different centralized servers and/or peer to peer networks at different times and in different communication sessions or in a same communication session. The data and instructions can be obtained in entirety prior to the execution of the applications. Alternatively, portions of the data and instructions can be obtained dynamically, just in time, when needed for execution. Thus, it is not required that the data and instructions be on a machine readable medium in entirety at a particular instance of time.

Examples of computer-readable media include but are not limited to non-transitory, recordable and non-recordable type media such as volatile and non-volatile memory devices, read only memory (ROM), random access memory (RAM), flash memory devices, floppy and other removable disks, magnetic disk storage media, optical storage media (e.g., Compact Disk Read-Only Memory (CD ROM), Digital Versatile Disks (DVDs), etc.), among others. The computer-readable media may store the instructions.

The instructions may also be embodied in digital and analog communication links for electrical, optical, acoustical or other forms of propagated signals, such as carrier waves, infrared signals, digital signals, etc. However, propagated signals, such as carrier waves, infrared signals, digital signals, etc. are not tangible machine readable medium and are not configured to store instructions.

In general, a machine readable medium includes any mechanism that provides (i.e., stores and/or transmits) information in a form accessible by a machine (e.g., a computer, network device, personal digital assistant, manufacturing tool, any device with a set of one or more processors, etc.).

In various embodiments, hardwired circuitry may be used in combination with software instructions to implement the techniques. Thus, the techniques are neither limited to any specific combination of hardware circuitry and software nor to any particular source for the instructions executed by the data processing system.

The above description and drawings are illustrative and are not to be construed as limiting. Numerous specific details are described to provide a thorough understanding. However, in certain instances, well known or conventional details are not described in order to avoid obscuring the description. References to one or an embodiment in the present disclosure are not necessarily references to the same embodiment; and, such references mean at least one.

In the foregoing specification, the disclosure has been described with reference to specific exemplary embodiments thereof. It will be evident that various modifications may be made thereto without departing from the broader spirit and scope as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense. 

What is claimed is:
 1. A data storage device of a vehicle, comprising: a hardware host interface configured to receive a sensor data stream from at least one sensor configured on the vehicle; at least one storage media component having a non-volatile memory configured to store at least a portion of the sensor data stream; a controller; and a neural network accelerator coupled to the controller, the neural network accelerator configured to: determine whether a first portion of the sensor data stream is obtained during a time period during which the vehicle is expected to operate in a normal mode; pre-classify the first portion of the sensor data stream obtained during the time period as normal and into a plurality of clusters corresponding to different types of normal operating conditions associated with the vehicle; perform at least a portion of computations utilizing an artificial neural network to predict a time for a maintenance service of the vehicle based on the first portion of the sensor data stream; detect an anomaly associated with a component of the vehicle based on a second portion of the sensor data being classified outside the plurality of clusters; estimate a degree of severity for the anomaly associated with the component of the vehicle to facilitate scheduling of the maintenance service; and adjust the artificial neural network by training the artificial neural network based on the sensor data stream and an actual time for the maintenance service of the vehicle to reduce a difference between a predicted time for a future maintenance service and an actual time for the future maintenance service, wherein the artificial neural network is trained during the time period during which the vehicle is expected to operate in the normal mode.
 2. The data storage device of claim 1, wherein the neural network accelerator is configured to perform at least matrix arithmetic computations using data stored in the data storage device.
 3. The data storage device of claim 2, wherein the matrix arithmetic computations include matrix multiplication and accumulation operations.
 4. The data storage device of claim 3, wherein the neural network accelerator is configured to provide a result of the matrix arithmetic computations as output of the data storage device in retrieving data.
 5. The data storage device of claim 3, wherein the neural network accelerator is configured to buffer a result of a matrix arithmetic computation for a next matrix computation performed in combination with a matrix of data retrieved from the non-volatile memory via a read command received in the hardware host interface.
 6. The data storage device of claim 1, wherein the artificial neural network includes a spiking neural network.
 7. The data storage device of claim 6, wherein the neural network accelerator is configured to simulate a differential equation controlling activation levels of neurons in the spiking neural network.
 8. The data storage device of claim 7, wherein the storage media component is configured to store states of the neurons in the spiking neural network according to a predetermined pattern; and the neural network accelerator is configured to update the states of the neurons over time according to the differential equation.
 9. The data storage device of claim 7, wherein the neural network accelerator is configured to train the spiking neural network via unsupervised machine learning to detect the anomaly.
 10. A storage media component, comprising: a hardware input/output interface configured to receive a sensor data stream from at least one sensor configured on a vehicle; at least one media unit having a non-volatile memory configured to store at least a portion of the sensor data stream; a control logic; and a neural network accelerator coupled to the control logic, the neural network accelerator configured to: determine whether a first portion of the sensor data stream is obtained during a time period during which the vehicle is expected to operate in a normal mode; pre-classify the first portion of the sensor data stream obtained during the time period as normal and into a plurality of clusters corresponding to different types of normal operating conditions associated with the vehicle; perform at least a portion of computations by utilizing an artificial neural network to predict a time for a maintenance service of the vehicle based on the first portion of the sensor data stream; detect an anomaly associated with a component of the vehicle based on a second portion of the sensor data being classified outside the plurality of clusters; estimate a degree of severity for the anomaly associated with the component of the vehicle to facilitate scheduling of the maintenance service; and adjust the artificial neural network by training the artificial neural network based on the sensor data stream and an actual time for the maintenance service of the vehicle to reduce a difference between a predicted time for a future maintenance service and an actual time for the future maintenance service, wherein the artificial neural network is trained during the time period during which the vehicle is expected to operate in the normal mode.
 11. The storage media component of claim 10, further comprising: an integrated circuit package, wherein the hardware input/output interface, the media unit, the control logic, and the neural network accelerator are sealed within the integrated circuit package.
 12. The storage media component of claim 11, wherein the media unit includes an integrated circuit die on which memory units of the non-volatile memory are formed.
 13. The storage media component of claim 12, wherein the integrated circuit package includes pins for connections to a controller of a data storage device of the vehicle.
 14. The storage media component of claim 12, wherein the neural network accelerator is configured to perform at least matrix arithmetic computations using data stored in the at least one media unit.
 15. The storage media component of claim 12, wherein the artificial neural network includes a spiking neural network; and the neural network accelerator is configured to simulate a differential equation controlling activation levels of neurons in the spiking neural network.
 16. A method, comprising: receiving, in a data storage device of a vehicle, a sensor data stream from at least one sensor configured on the vehicle; storing, in the data storage device, the sensor data stream; determining whether a first portion of the sensor data stream is obtained during a time period during which the vehicle is expected to operate in a normal mode; pre-classifying the first portion of the sensor data stream obtained during the time period as normal and into a plurality of clusters corresponding to different types of normal operating conditions associated with the vehicle; performing, by a neural network accelerator configured within the data storage device, at least a portion of computations by utilizing an artificial neural network and the sensor data stream; predicting, based on the computations, a time for a maintenance service of the vehicle; detecting an anomaly associated with a component of the vehicle based on a second portion of the sensor data being classified outside the plurality of clusters; estimating a degree of severity for the anomaly associated with the component of the vehicle to facilitate scheduling of the maintenance service; and adjust the artificial neural network by training the artificial neural network based on the sensor data stream and an actual time for the maintenance service of the vehicle to reduce a difference between a predicted time for a future maintenance service and an actual time for the future maintenance service, wherein the artificial neural network is trained during the time period during which the vehicle is expected to operate in the normal mode.
 17. The method of claim 16, wherein the neural network accelerator is configured on an integrated circuit device that is separate from a controller of the data storage device.
 18. The method of claim 16, wherein the neural network accelerator is configured on an integrated circuit device that includes a controller of the data storage device.
 19. The method of claim 16, wherein the neural network accelerator is configured on an integrated circuit device that includes a storage media component of the data storage device.
 20. The method of claim 16, wherein the computations include at least matrix arithmetic computations or differential equation simulations. 